
/*登陆成功后我们需要记住用户登陆的状态，有两种方案
第一种是结合cookie和session去保持用户的登陆状态
第二种是通过token保持用户登陆状态*/
// cookie和session                          服务器和端口不存在跨域问题时候推荐使用
// token                                    反之，前端与服务器存在跨域问题，则需要token来维持登陆状态





/* token维持登陆状态原理分析
客户端                                      =>                            服务器

通过Ajax访问服务器上的数据.................=><=...........................提供登陆api接口
登陆页面输入用户名和密码进行登陆............=>                            
客户端存储该token值                         <=............................服务器验证通过后生成该用户的token并返回     
*后续的所有请求都携带该token发送请求........=>............................服务器就会根据你发的token去验证你是哪位用户从而根据你的操作去返回不同的结果，这里就要明白token就是进行客户端与服务器端之间的身份校验的

目前服务器与客户端存在跨域问题，所以就不能使用cookie与session*/





/* 字体图标     用户名和密码前的ui小件
+ 点击产生的回调函数都放在methods里，data里的return接收v-model监听到的信息并返回出去
+ ref可以获取到表单对象
+ 安装less-loader依赖
因为使用了less-loader，所以还需安装less依赖
+ 生命周期函数created里的函数，还需要在methods里定义这个函数~·（）

+ 通过接口获取菜单数据原理：通过axios添加\请求拦截器添加token，只要我们导入axios包就能调用axios.interceptors属性，这个属性中有一个request成员，它就是请求拦截器，可以通过use函数为请求拦截器挂载一个回调函数，只要通过axios向服务器发送一个请求，那么在发送请求期间优先调用use函数，请求到达服务器之前先会调用use函数对咱们请求做一下预处理，下面的return config就代表我们已经把这个请求头做了一次预处理，这样的话我们的这个请求经过处理才会被发送到服务器进行真正的处理，所以请求拦截器相当于一个预处理的过程

+ 通过config header我们获取到了请求头，api接口文档要求请求头中使用 /`Authorization` 字段提供 `token` 令牌/ 那么我们就需要加这个属性，值就是token

+ 关键：menuList 这是一个所有数据的集合，这个集合里面包含5个菜单，5个菜单里的每个children属性里有若干个子菜单，那么我们的思路是使用双层for循环将他渲染出来，第一层渲染外层菜单，第二层渲染内层菜单

+ 关键：目的：将二级菜单高亮思路：给2级菜单添加单击事件，单击后将path值保存，当我们刷新页面的时候可以在sessionStor取出来，再动态地将path赋值给最外层结构的defaul-active属性
    注意：保存的链接需要在data中声明，默认一个空地址

+ 原来methods里的事件函数，括号内的值和结构要传的值没有太大关系，也无命名规则，例如传入arc，在下面log（arc），那么arc的内容就是当前服务对象的所有数据，如果你需要什么数据再在里面取不就完事了

+ 关于点击搜索：原来下面定义过getUserList函数，每调用一次就会重新渲染一次列表

+ 涉及到布尔值的内容在data中定义,意思是默认定义

+ ref 是给el-from组件起了一个引用名称

+ 触发验证密码的方式 trigger：“blur”

+ 关键：在data中写书校验邮箱、电话正则规则，形参中包含rule，value（要校验的值），cb（回调函数），一般先定义正则表达式，再校验test，在使用的时候呢通过validator指定校验规则，通过blur指定校验时机

+ 关键：需求：添加用户form表单中，无论是点击取消还是确定，我需要里面的内容和状态清空，思路，获取form表单点击取消和确定的关闭事件，在关闭事件中清空表单
    @close事件（清空内容），会在表单关闭的时候触发； 在methods中定义@close的函数(addFormRef)，函数通过this.$refs.addFormRef引用resetFields方法

+ 在表单关闭之前对表单进行一个预校验，接下来我们为确定按钮绑定一个函数(addUser)

+ :visible.sync   这能为对话框设置一个函数(editDialogVisible)，在data的reture中定义ture或者false控制显示或者隐藏.在按钮的主体设置一个函数，写的methods内，点击的时候使editDialogVisible = true，对话框即可显示

+ 关键：需求：在修改用户对话框中，我们需要原有的信息渲染到框中，思路：从需要拿到Item.id去考虑，怎么拿呢？在修改按钮的主体，我们有scope，通过scope.row可以获取到当前行内的信息，所以在按钮的点击函数中输入scope.row.id即可拿到id
    + id 拿到之后就要调用对应的接口获取用户的信息，看api文档-根据id查询用户信息
    + disabled 在用户名input中加入使当前内容灰暗不可修改
    + 修改用户信息，发起网络请求，添加用户信息，发起网络请求
*/








